package com.tarena.luban.demo.order;

import com.tarena.demo.luban.cart.api.CartApi;
import org.apache.dubbo.config.ProtocolConfig;
import org.apache.dubbo.config.ReferenceConfig;
import org.apache.dubbo.config.RegistryConfig;
import org.apache.dubbo.config.bootstrap.DubboBootstrap;

public class Consumer {
    public static void main(String[] args) {
        DubboBootstrap boot = DubboBootstrap.getInstance();
        // 1.dubbo应用名称
        boot.application("order-consumer");
        // 2.注册中心
        boot.registry(new RegistryConfig("nacos://localhost:8848"));
        // 3.通信协议(dubbo应用不同,端口号不同)
        boot.protocol(new ProtocolConfig("dubbo",20991));

        // 4.调用的接口服务功能
        ReferenceConfig<CartApi> referenceConfig = new ReferenceConfig<>();
        // 设置要引用的接口类型
        referenceConfig.setInterface(CartApi.class);
        // 将应用配置添加到启动类引导中
        boot.reference(referenceConfig);
        // 5.获取具有底层连接的代理对象
        CartApi cartApi = referenceConfig.get();
        System.out.println("获取代理对象的名字:"+cartApi.getClass().getName());
        // 调用业务方法
        Boolean aBoolean = cartApi.deleteCart(null);
        System.out.println("远程调用删除购物车,返回结果:"+aBoolean);

        String result = cartApi.test("Jerry");
        System.out.println(result);
    }
}






